package com.hspedu.extends_.theory;

/**
 * @Author Stringzhua
 * @Date 2024/3/1 19:55
 * description:继承的本质
 */
public class ExtendsTheory {
    public static void main(String[] args) {
        Son son = new Son();//内存的布局
        System.out.println(son.name);//大头儿子
        //父类中的私有属性通过son.age访问时,
        //由于先访问到Father类的private int age=39;属性,
        // 同时因为没有getAge的公有方法,所以会卡在Father类中。
        // 从而导致报错,而不会去访问Grandpa的公有属性int age=60;
        System.out.println("son.age = " + son.age);//爸爸的39//爷爷的60
        //爸爸的私有属性必须通过公共方法去访问
//        System.out.println("son.getAge() = " + son.getAge());//39
        System.out.println(son.hobby);
    }
}

class Grandpa {//爷爷类
    String name = "大头爷爷";
    String hobby = "旅游";
    int age = 60;//爷爷的年龄
}

class Father extends Grandpa {//父类
    String name = "小头爸爸";
//    private int age = 39;

//    私有属性不能在子类访问,
//    则通过父类提供的公有方法,然后访问
//    public int getAge() {
//        return age;
//    }
}

class Son extends Father {//子类
    String name = "大头儿子";
}